perm filename LINES.LST[NEW,LCS] blob
sn#148554 filedate 1975-02-27 generic text, type T, neo UTF8
LINES.F4 F40 V25 27-FEB-75 12:42 PAGE 1
25800 SUBROUTINE LINES(A,B,L)
1M BLOCK 0
25850 COMMON/DST/BB,CC
25900 COMMON /SIZ/RSZ,JCEN,KCEN /FL/IC,NZ,NX,RZ,XGP
26000 COMMON/DL/IXRX,SAVER,AA /PLTR/IPLT,RHT,DIS
26100 COMMON R2,JA,CENTR,JB,RJQ(20),JQ(20)
26200 COMMON/DPY/JJ(4000),WDS(250),MEDIT,IGO
26400 EQUIVALENCE (ITOP,JJ(3999)),(IBOT,JJ(4000))
26402 1,(JJ2,JJ(2))
26500 DATA BB/.008/,CC/3.5/
26600 C SET XGP TO 1200.0 FOR MARGIN IN XEROX COPIES
26650 GO TO 23
JRST 23P
26700 22 IF(JQ(1).NE.0)GO TO 23
22P MOVE 02,JQ
JUMPN 02,23P
26750 IF(CC.EQ.1000)GO TO 23
MOVSI 02,212764
CAMN 02,CC
JRST 23P
26775 C ABOVE TO SKIP DISTORTION ON COMMAND
26800 C CHANGE ABOVE TO 'JFCL' IN DDT TO USE NEXT ITEMS.
27000 C USE THIS IN DDT TO DISTORT ITEMS. CC MUST BE > DD
27100 B=B*(CC-BB*ABS(A))
JSA 16,ABS
ARG 02,A
FMPR 00,BB
FSBR 00,CC
FMPRM 00,B
MOVNS 00,B
27150 C CC IS HGT FACTOR.
27200 23 IF(IPLT)GO TO 2
LINES.F4 F40 V25 27-FEB-75 12:42 PAGE 2
23P MOVE 02,IPLT
JUMPL 02,2P
27300 M=A*RSZ
MOVE 02,A
FMPR 02,RSZ
JSA 16,IFIX
ARG 00,2
MOVEM 00,M
27400 N=B*RSZ
MOVE 02,B
FMPR 02,RSZ
JSA 16,IFIX
ARG 00,2
MOVEM 00,N
27500 IF(RSZ.LE.0.8571)GO TO 3
MOVE 02,CONST.
CAML 02,RSZ
JRST 3P
27600 C NEXT FOR DISPLAY MAGNIFICATION
27700 M=M-JCEN
MOVN 02,JCEN
ADDM 02,M
27800 N=N-KCEN
MOVN 02,KCEN
ADDM 02,N
27900 IF(JA.NE.8)GO TO 5
MOVEI 02,10
CAME 02,JA
JRST 5P
28000 C NEXT INSURES DISPLAY OF STAFF LINES
28100 IF(M.GT.511)M=511
MOVEI 02,777
CAML 02,M
JRST 2M
MOVEI 02,777
MOVEM 02,M
2M BLOCK 0
28200 IF(M.LT.-511)M=-511
MOVNI 02,777
CAMG 02,M
LINES.F4 F40 V25 27-FEB-75 12:42 PAGE 3
JRST 3M
MOVNI 02,777
MOVEM 02,M
3M BLOCK 0
28400 5 IF(IABS(M).GT.512)GO TO 77
5P JSA 16,IABS
ARG 00,M
CAILE 00,1000
JRST 77P
28450 IF(IABS(N).LT.512)GO TO 4
JSA 16,IABS
ARG 00,N
CAIGE 00,1000
JRST 4P
28500 C NOW DRAWS INVISIBLE VECT. IF IT GOES OFF THE SCREEN.
28600 77 KZ=-1
77P SETOM KZ
28700 RETURN
JRST 4M
28800 4 IF(KZ.EQ.0)GO TO 6
4P MOVE 02,KZ
JUMPE 02,6P
28900 KZ=0
SETZM KZ
29000 GO TO 1
JRST 1P
29050 3 IF(JA.EQ.44)GO TO 6
3P MOVEI 02,54
CAMN 02,JA
JRST 6P
29075 C JA=44=BAR LINES - THEY DON'T FIGURE IN MAX. HGT.
29100 K=B
JSA 16,IFIX
ARG 00,B
MOVEM 00,K
29200 IF(K.GT.ITOP)ITOP=B
MOVE 02,K
CAMG 02,ITOP
LINES.F4 F40 V25 27-FEB-75 12:42 PAGE 4
JRST 5M
JSA 16,IFIX
ARG 00,B
MOVEM 00,ITOP
5M BLOCK 0
29300 IF(K.LT.IBOT)IBOT=B
MOVE 02,K
CAML 02,IBOT
JRST 6M
JSA 16,IFIX
ARG 00,B
MOVEM 00,IBOT
6M BLOCK 0
29302 6 IF(JJ2.GT.3990)RETURN
6P MOVEI 02,7626
CAML 02,JJ2
JRST 7M
JRST 4M
7M BLOCK 0
29400 IF(L.EQ.3)GO TO 1
MOVEI 02,3
CAMN 02,L
JRST 1P
29500 CALL AVECT(M,N)
JSA 16,AVECT
ARG 00,M
ARG 00,N
29600 RETURN
JRST 4M
29700 1 CALL AIVECT(M,N)
1P JSA 16,AIVECT
ARG 00,M
ARG 00,N
29800 RETURN
JRST 4M
29900 2 IF(IPLT.EQ.-2)RETURN
2P MOVNI 02,2
CAME 02,IPLT
JRST 8M
JRST 4M
8M BLOCK 0
LINES.F4 F40 V25 27-FEB-75 12:42 PAGE 5
30300 C RXGP SETS UP-DOWN POS. ON XEROX PAPER (FRACTIONAL POSITIONS POSSIBLE.)
30400 CC IF(B)BX=-BX
30500 C AX AND BX ARE FOR ROUND-OFF
30600 CC IF(IXRX.EQ.0)GO TO 9
30610 CC M=ROFF(RXGP-B*RHT)
30620 CC N=ROFF(XGP+A*DIS)
30900 CC GO TO 8
31110 9 M=ROFF(A*DIS)
9P MOVE 02,A
FMPR 02,DIS
MOVEM 02,%TEMP.
JSA 16,ROFF
ARG 02,%TEMP.
MOVEM 00,%TEMP.+1
JSA 16,IFIX
ARG 00,%TEMP.+1
MOVEM 00,M
31120 N=ROFF(B*RHT)
MOVE 02,B
FMPR 02,RHT
MOVEM 02,%TEMP.
JSA 16,ROFF
ARG 02,%TEMP.
MOVEM 00,%TEMP.+1
JSA 16,IFIX
ARG 00,%TEMP.+1
MOVEM 00,N
31200 8 CALL PLOT(M,N,L)
8P JSA 16,PLOT
ARG 00,M
ARG 00,N
ARG 00,L
31400 END
JRST 4M
LINES% ARG 00,0
MOVEM 15,TEMP.
MOVEM 16,TEMP. +1
MOVEI 00,TEMP. +2
PUSH 00,@0(16)
LINES.F4 F40 V25 27-FEB-75 12:42 PAGE 6
PUSH 00,@1(16)
PUSH 00,@2(16)
JRST 1M
4M MOVE 15,TEMP.
MOVE 16,TEMP. +1
HRROI 00,TEMP. +5
POP 00,@2(16)
POP 00,@1(16)
POP 00,@0(16)
JRA 16,3(16)
CONSTANTS
0 200666653476
GLOBAL DUMMIES
A 211 B 212 L 213
COMMON
BB /DST /+0 CC /DST /+1 RSZ /SIZ /+0 JCEN /SIZ /+1 KCEN /SIZ /+2
IC /FL /+0 NZ /FL /+1 NX /FL /+2 RZ /FL /+3 XGP /FL /+4
IXRX /DL /+0 SAVER /DL /+1 AA /DL /+2 IPLT /PLTR /+0 RHT /PLTR /+1
DIS /PLTR /+2 R2 /.COMM./+0 JA /.COMM./+1 CENTR /.COMM./+2 JB /.COMM./+3
RJQ /.COMM./+4 JQ /.COMM./+30 JJ /DPY /+0 WDS /DPY /+7640 MEDIT /DPY /+10232
IGO /DPY /+10233 ITOP /DPY /+7636 IBOT /DPY /+7637 JJ2 /DPY /+1
SUBPROGRAMS
ABS IFIX IABS AVECT AIVECT ROFF PLOT
SCALARS
LINES 216 BB 0 CC 1 B 212 A 211
IPLT 0 M 217 RSZ 0 N 220 JCEN 1
KCEN 2 JA 1 KZ 221 K 222 ITOP 7636
IBOT 7637 JJ2 1 L 213 DIS 2 RHT 1
IC 0 NZ 1 NX 2 RZ 3 XGP 4
IXRX 0 SAVER 1 AA 2 R2 0 CENTR 2
JB 3 MEDIT 10232 IGO 10233
ARRAYS
RJQ 4 JQ 30 JJ 0 WDS 7640